package d1_char_stream;

import java.io.FileReader;
import java.io.Reader;

public class FileReaderDemo01 {
    public static void main(String[] args) {
        //目标:文件字符输入流的使用:每次读取一个字符
        //1、创建一个文件字符输入流管道与源文件接通
        try (    //特点: 这里能释放资源, 并且程序执行完毕之后,会自动调用它们的close方法关闭
                 Reader fr = new FileReader("javapromax\\day10-io-code\\src\\陈某01.txt");//简化写法,底层调用了兄弟构造器
        ) {
            //2、读取一个字符 public int read() 每次读取一个字符返回, 如果发现没有数据可读会返回-1

            //读取一个字符编号回来(按照Unicode字符集) ,没有返回-1
//            int c1 = fr.read();
//            //进行强转  char -->在底层的字符集即是Unicode
//            System.out.println((char) c1);
//
//            int c2 = fr.read();
//            System.out.println((char) c2);
//            System.out.println(c2);
//
//            //进行第三次读取
//            int c3 = fr.read();
//            System.out.println(c3);
            //3、利用循环进行改进
            int c; //用于记住读取到字符的编号 --> 如果没有发现数据就是-1
                        //或者是>0
            while((c = fr.read()) != -1){
                //获取督导的字符
                char ch = (char) c;
//                System.out.println(c);
                System.out.print(ch);//文本自带换行--------->这个意思是每一行到另外一行是有换行的
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        // 拓展:
        //      是都解决了乱码问题: 解决了!
        //      性能较差, 依然是垃圾代码
    }
}
